package com.mask.im.business.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.mask.im.business.common.model.RestResponse;
import com.mask.im.business.model.entity.UserAuth;
import com.mask.im.business.model.dto.IdentityVFDTO;
import com.mask.im.business.common.model.PageResult;
import com.mask.im.business.model.dto.SliderLocationDTO;
import com.mask.im.business.model.dto.UserAdminDTO;
import com.mask.im.business.model.vo.*;

import java.util.List;

public interface UserAuthService extends IService<UserAuth> {


	RestResponse<?> phoneLogin(PhoneLoginVO phoneLoginVO);

	void logout();

	RestResponse<?> giteeLogin(String code);

	RestResponse<String> getAccessToken(String type,String code);

	RestResponse<?> gitHubLogin(String accessToken);

	RestResponse<IdentityVFDTO> getLoginAccount(String loginAccount);

	RestResponse<?> getUserAuthId(String id);

	RestResponse<String> authentication(String type, IdentityVerificationVO verificationVO);


	RestResponse<String> forgotPasswordUpdate(UpdatePasswordVO updatePasswordVO);

	List<String> findAccount(String type, IdentityVerificationVO verificationVO);

	void updateEmailOrPhone(UpdateEmailOrPhoneVO updateEmailOrPhoneVO);

	RestResponse<?> QQLogin(String accessToken);

	RestResponse<String> getSliderFlag(Integer type);

	RestResponse<SliderLocationDTO> getSliderLocation(String type);

	RestResponse<SliderLocationDTO> verifySliderLocation(VerifySliderLocationVO sliderLocationDTO);

	PageResult<UserAdminDTO> listUsers(ConditionVO conditionVO);

	void updateAdminPassword(PasswordVO passwordVO);
}
